// es5实现
function flatten1(arr){
    let res = []
    arr.forEach((item,i,arr) => {
        if(Array.isArray(item)) {
            res = res.concat(flatten(item))
        } else {
            res.push(arr[i])
        }
    })
    return res
}

// es6实现
function flatten2(arr){
    while(arr.some(item => Array.isArray(item))) {
        arr = [].concat.apply([],arr)
    }
    return arr
}

// toString实现
function flatten3(arr) {
    return arr.toString().split(',').map(item => +item)
}

// reduce
function flatten4(arr){
    return arr.reduce((pre,cur)=> {
        return pre.concat(Array.isArray(cur)?flatten4(cur):cur)
    },[])
}
